package com.aviatorscript.avitorscriptmust.service;

import com.aviatorscript.avitorscriptmust.dto.ValidationConfigDTO;
import com.aviatorscript.avitorscriptmust.entity.FieldValidationConfig;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 字段校验配置Service接口
 *
 * @author system
 */
public interface FieldValidationConfigService extends IService<FieldValidationConfig> {
    
    /**
     * 创建校验规则
     * 
     * @param dto 校验配置DTO
     * @return 创建的配置ID
     */
    Long createValidationRule(ValidationConfigDTO dto);
    
    /**
     * 更新校验规则
     * 
     * @param id 配置ID
     * @param dto 校验配置DTO
     * @return 是否成功
     */
    boolean updateValidationRule(Long id, ValidationConfigDTO dto);
    
    /**
     * 删除校验规则
     * 
     * @param id 配置ID
     * @return 是否成功
     */
    boolean deleteValidationRule(Long id);
    
    /**
     * 启用/禁用校验规则
     * 
     * @param id 配置ID
     * @param status 状态（1=启用，0=禁用）
     * @return 是否成功
     */
    boolean updateStatus(Long id, Integer status);
    
    /**
     * 根据类名获取所有启用的校验规则
     * 
     * @param className 类名
     * @return 校验规则列表
     */
    List<FieldValidationConfig> getEnabledRulesByClassName(String className);
    
    /**
     * 获取所有启用的校验规则
     * 
     * @return 校验规则列表
     */
    List<FieldValidationConfig> getAllEnabledRules();
    
    /**
     * 校验脚本语法是否正确
     * 
     * @param scriptContent 脚本内容
     * @return 校验结果消息
     */
    String validateScript(String scriptContent);
} 